package com.boarsoft.boar.app;

import java.util.List;

import com.boarsoft.boar.entity.AppLib;
import com.boarsoft.boar.entity.LibInfo;
import com.boarsoft.common.dao.PagedResult;

public interface AppLibBiz {

	/**
	 * 新增一条关联一对一关系记录
	 *
	 * @param o-AppLib
	 */
	void save(AppLib o);

	/**
	 * 新增一条一对多关联关系记录 1，可能是一个appId对多个libId 2，可能是一个libId对多个appId
	 *
	 * @param appIds--由英文逗号分隔的多个libId组成
	 * @param LibIds--由英文逗号分隔的多个libId组成
	 */
	void save(String appIds, String LibIds);

	/**
	 * 删除某个实例
	 *
	 * @param id-id
	 */
	void delete(String id);

	/**
	 * 获取服务器信息
	 *
	 * @param id-id
	 * @return AppInst
	 */
	AppLib get(String id);

	/**
	 * 查询实例，返回某一个实例
	 *
	 * @param appId-应用id
	 * @param libId-库包id
	 * @return List<AppLib>
	 */
	List<AppLib> find(String appId, String libId);

	/**
	 * 给一个新的应用新增一个已有应用与库包Id之间的关联关系 即是：复制一个已有应用与库包id之间的关联关系到一个新的应用
	 * 新应用就有了与老应用一样的库包关联
	 */
	boolean copy(String oldAppId, String newAppId);

	/**
	 * 持久化的关联关系修改
	 * 
	 * @param libPath
	 * @param libId
	 * @param appId
	 * @return 更改记录数
	 */
	public int updateLibPath(String appId, String libId, String libPath);

	/**
	 * 批量查询
	 * 
	 * @param appIds
	 * @param libIds
	 * @return
	 */
	List<AppLib> findByBatch(String appIds, String libIds);

	/**
	 * 
	 * @param appId
	 * @param key
	 * @param orderBy
	 * @param pageNo
	 * @param pageSize
	 * @return
	 */
	PagedResult<AppLib> list(String appId, String key, String orderBy, int pageNo, int pageSize);

	/**
	 * 
	 * @param appId
	 * @return
	 */
	List<LibInfo> list(String appId);
}